/*******************************************************************************  
* 文件名称：蓝桥杯单片机省赛模板
* 实验目的：完成赛题要求
* 程序说明：
* 字体格式：UTF-8
* 日期版本：2023-4-1	V2.0
******************************************************************************/

/*********头文件*********/
#include <STC15F2K60S2.H>
#include "intrins.h"
#include "iic.h"
#include "SMG.h"
#include "Timer.h"
#include "Key.h"
#include "uart.h"

/*********宏定义*********/
#define uchar unsigned char 
#define uint unsigned int
	
unsigned char uc_uart;

void main()
{
	P0 = 0x00;	
	P2 = P2 & 0x1F | 0xA0;	//先送数据，再开锁存器
	P2 &= 0x1f;
	
	Power_All_Init();
	
//	Timer0_Init();
	
	DS1302_Init();
	DS1302_SetTime();
	
//	UartInit();
	
	Timer2_Init();
	
	
	
	while(1)
	{
		SMG_Show_Data();	//数码管显示
		Key4_Proc();		//按键扫描
		
		DS1302_ReadTime();
		
//		P0 = ~0x01;	
//		P2 = P2 & 0x1F | 0x80;	//先送数据，再开锁存器
			
		P0 = 0xFF; P2 = 0x80; P0 = 0xFe; P2 &= 0x1f;	//关闭锁存器
	}
}

//UART 中断服务程序
//void Uart_ISR(void) interrupt 4
//{
//  if(RI == 1) //接收完一个字节数据
//	{
//	  RI = 0;  //清除RI位
//	  puc_Uart_Rece_String[uc_Uart_Rece_num++] = SBUF;  //保存串口数据
//	}
//}

////定时器0中断服务函数
//void Timer0_Rountine(void) interrupt 1
//{
//	static unsigned int  T0Count0;
//	

//	T0Count0++;
//	if(T0Count0 >= 1000)
//	{
//		//执行操作
//		
//		T0Count0 = 0;	//软件复位
//	}
//	
//	
//}	


// 定时器2 中断服务函数模板
void Timer2_Routine() interrupt 12  // 1T 16位自动重载
{
    static unsigned int  T2Count0;
	static unsigned char i, smg_scan_cnt;	//数码管
	static unsigned char key4_count;	//独立按键

	ui_ChangAn_ms++;
	if(++T2Count0 >= 1000)
	{
		//执行操作
		uc_uart = 1;
		T2Count0 = 0;
	}
	
	smg_scan_cnt++;				//数码管扫描时间
	if (smg_scan_cnt >= 1)		//2ms扫描一次数码管
	{
		smg_scan_cnt = 0;		//软件复位
		P2 = 0xE0; P0 = 0xFF;	//定时器扫描数码管，先消影，就不会出现残影了!!！
		P2 = 0xC0; P0 = 0x01<<i;
		
		if (menu_index == 0) {P2 = 0xE0; P0 = menu1[i]; P2 = 0;}
		if (menu_index == 1) {P2 = 0xE0; P0 = menu2[i]; P2 = 0;}
		if (menu_index == 2) {P2 = 0xE0; P0 = menu3[i]; P2 = 0;}
		if (menu_index == 3) {P2 = 0xE0; P0 = menu4[i]; P2 = 0;}
		if (menu_index == 4) {P2 = 0xE0; P0 = menu5[i]; P2 = 0;}
		if (menu_index == 5) {P2 = 0xE0; P0 = menu6[i]; P2 = 0;}
		i ++;
		i = i % 8;
	}
	
	if (++key4_count >= 10)	//独立按键的扫描
	{
		key4_count = 0;
		uc_Key_flag = 0;
	}
	

}
